/** 岗位信息 */
export interface PositionInfo {
  id?: number
  enterpriseId: number // 企业ID
  enterpriseName?: string // 企业名称（展示用）
  positionName: string // 岗位名称
  positionType: string // 岗位类型
  workType: string // 工作类型
  workCity: string // 工作城市
  salaryRange: string // 薪资范围
  internshipPeriod: string // 实习周期
  startDate: string // 任职开始时间
  recruitmentCount: number // 招聘人数
  majorRequirements: string[] // 专业限制
  skillRequirements: string // 技能要求
  jobResponsibilities: string // 岗位职责
  jobDescriptionUrl?: string // 岗位说明书URL
  applicationDeadline: string // 报名截止日期
  contactInfo: string // 联系方式
  status: string // 状态：recruiting(招聘中)、closed(已截止)
  createTime?: string // 创建时间
}

/** 岗位查询参数 */
export interface PositionQuery {
  currentPage: number
  size: number
  positionName?: string
  enterpriseName?: string
  status?: string
}

/** 岗位响应数据 */
export type PositionResponse = ApiResponseData<{
  list: PositionInfo[]
  total: number
}>

/** 创建/更新岗位请求 */
export interface CreateOrUpdatePositionRequest extends PositionInfo {}

/** 岗位申请信息 */
export interface PositionApplication {
  id?: number
  positionId: number // 岗位ID
  positionName?: string // 岗位名称（展示用）
  studentId: number // 学生ID
  studentName: string // 学生姓名
  major: string // 专业
  applyTime: string // 申请时间
  expectedStartDate: string // 预计入职时间
  expectedEndDate: string // 预计结束时间
  contactPhone: string // 联系电话
  emergencyContact: { name: string, phone: string } // 紧急联系人
  interviewProofUrl: string // 面试通过证明URL
  status: "pending" | "approved" | "rejected" // 申请状态
  reviewComment?: string // 审核意见
}

/** 岗位申请查询参数 */
export interface ApplicationQuery {
  currentPage: number
  size: number
  positionId?: number
  status?: string
  major?: string
}

/** 岗位申请响应数据 */
export type ApplicationResponse = ApiResponseData<{
  list: PositionApplication[]
  total: number
}>

/** 学生岗位收藏 */
export interface PositionFavorite {
  id?: number
  positionId: number
  studentId: number
  createTime: string
}

/** 学生视图 - 岗位信息（含脱敏联系方式） */
export interface StudentPositionInfo extends PositionInfo {
  applicationCount?: number // 报名人数
  enterpriseContactInfo?: string // 脱敏的企业联系方式
}

export interface OptionItem {
  value: number
  label: string
}
export interface PositionOptions {
  workTypeOptions: OptionItem[]
  workCityOptions: OptionItem[]
  periodOptions: OptionItem[]
  salaryOptions: OptionItem[]
  positionTypeOptions: OptionItem[]
  companyOptions: OptionItem[]
}
export type PositionOptionsApiResponse = ApiResponseData<PositionOptions>
